package magazyn;

import interfejsy.ConnectPRO;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JPanel;


public class RealizujZamowienie extends JPanel {

	private static final long serialVersionUID = 1L;

	private ResultSet result2 = null;
	private ResultSet result3 = null;
	private ResultSet result4 = null;
	private Statement state2 = null;
	private Statement state3 = null;
	private Statement state4 = null;
	JButton dodajzamowienie = new JButton("Realizuj");

	
	public RealizujZamowienie() {
		add(dodajzamowienie);
		
		dodajzamowienie.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				try {
					realizujZamowienie(arg0);
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				JOptionPane.showMessageDialog(null, "Dodano zamowienie do magazynu!");
			}
		});
		
	}
	
	
			
			private void realizujZamowienie(ActionEvent arg0) throws SQLException {
				try {
					//-------------Sprawdzenie dostepnego miejsca na magazynie----------------------
					state4 = ConnectPRO.connect.createStatement();
					result4 = state4.executeQuery("select miejsce from magazyn_miejsce");
					while (result4.next()) {
						int miejsce = result4.getInt("miejsce");
						//----------------Jesli miejsce<20 to wyswietla ostrzezenie---------------------
						if (miejsce < 20) {
							JOptionPane.showMessageDialog(null, "UWAGA! Konczy sie miejsce na magazynie! Pozostalo '" + miejsce + "' jednostek");
						}
					
                    
                    state2 = ConnectPRO.connect.createStatement();
                    result2 = state2.executeQuery("select id_produktu, ilosc from biezace_zamowienie");
                    while (result2.next()) {
                            
                            String idproduktu = result2.getString("id_produktu");
                            int ilosc_towaru = result2.getInt("ilosc");
                            Statement st = ConnectPRO.connect.createStatement();
                            st.executeUpdate("UPDATE magazyn SET aktualny_stan=aktualny_stan+'" + ilosc_towaru +"' where id_produktu='"+ idproduktu +"'");
                            st.executeUpdate("DELETE FROM biezace_zamowienie");
                            
                            //---------------Sprawdzenie rozmiaru dodawanego produktu i aktualizacja magazynu------------------------
                            state3 = ConnectPRO.connect.createStatement();
                            result3 = state3.executeQuery("select rozmiar from kategoria where id_kategorii=(select id_kategori from produkty where id_produktu='"+ idproduktu +"')");
                            while (result3.next()) {
                                    String rozmiar_prod = result3.getString("rozmiar");
                                    Statement st2 = ConnectPRO.connect.createStatement();
                                    st2.executeUpdate("UPDATE magazyn_miejsce SET miejsce=miejsce-('" + rozmiar_prod + "' * '" + ilosc_towaru + "')");
                            }
                    }
                    
					}
					
					}
				
            
            catch (SQLException e) {
					JOptionPane.showMessageDialog(null, "Blad wewnetrzny!");
					e.printStackTrace();
				}
				
				

    }
			
			
	


				
}
      
        

